//#define  _CRT_SECURE_NO_WARNINGS 1
//#include"LinkStack.h"
//void InitStack(Stack* s)
//{
//	s = (Stack*)malloc(sizeof(Stack));
//	s->next = NULL;
//}
//void DestroyStack(Stack* s)
//{
//	assert(s);
//	Stack* cur = s->next;
//	while (cur)
//	{
//		free(s);
//		s = cur;
//		cur = cur->next;
//	}
//	free(s);
//}
//void DestroyStack(Stack* s)
//{
//	assert(s);
//	Stack* cur = s->next;
//	while (cur)
//	{
//		free(s);
//		s = cur;
//		cur = cur->next;
//	}
//	free(s);
//}
//void StackPush(Stack* s, DataType x)
//{
//	assert(s);
//	Stack* newnode = (Stack*)malloc(sizeof(DataType));
//	if (newnode == NULL)
//	{
//		printf("malloc is fail\n");
//		exit(-1);
//	}
//	newnode->next = s->next;
//	s->next = newnode;
//}
//void StackPush(Stack* s,DataType x)
//{
//	assert(s);
//	Stack* p;
//	p = (Stack*)malloc(sizeof(Stack));
//	p->data = x;
//	p->next = s->next;
//	s->next = p;
//}
//bool StackEmpty(Stack* s)
//{
//	assert(s);
//	return s->next == NULL;
//}
//
//void StackPop(Stack* s)
//{
//	assert(s);
//	assert(!StackEmpty(s));
//	Stack* next = s->next;
//	free(s);
//	s = next;
//}
//
//DataType GetTop(Stack* s)
//{
//	assert(s);
//	return s->next->data;
//}